export default {
  namespaced: true,
  state: () => ({
    // 收货地址
    address:  JSON.parse(uni.getStorageSync('address') || '{}'),
    // 登录凭证
    token: uni.getStorageSync('token') || '',
    // 用户信息
    userInfo: JSON.parse(uni.getStorageSync('userInfo') || '{}'),
    // 若跳转登录后,返回购物车页面的所需信息
    redirectInfo : {}
  }),
  mutations: {
    // 更新地址
    updateAddress(state, newAddress) {
      state.address = newAddress
      this.commit('modulesUser/saveAddressToStorage')
    },
    // 更新用户信息
    updateUserInfo(state,newUserInfo) {
      state.userInfo = newUserInfo
      this.commit('modulesUser/saveUserInfoToStorage')
      console.log(newUserInfo);
    },
    // 更新 token
    updateToken(state,token) {
      state.token = token
      this.commit('modulesUser/saveTokenToStorage')
    },
    // 更新重定向信息
    updateRedirectInfo(state,newInfo) {
      state.redirectInfo = newInfo
    },
    // 存储用户地址到本地
    saveAddressToStorage(state) {
      uni.setStorageSync('address', JSON.stringify(state.address))
    },
    // 存储用户信息到本地
    saveUserInfoToStorage(state) {
      uni.setStorageSync('userInfo', JSON.stringify(state.userInfo))
    },
    saveTokenToStorage(state) {
       uni.setStorageSync('token', JSON.stringify(state.token))
    }
  },
  getters: {
    // 收货详细地址的计算属性
    addstr(state) {
      if (!state.address.provinceName) return ''
      
      // 拼接 省，市，区，详细地址 的字符串并返回给用户
      return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
    }
  }
}
